文件的读写需要使用文件类型指针,而文件类型是C语言提供的结构体类型。
FILE在"stdio.h"中有如下定义:
struct _iobuf {
char *_ptr; //文件输入的下一个位置
int _cnt; //当前缓冲区的相对位置
char *_base; //指基础位置(即是文件的起始位置)
int _flag; //文件标志
int _file; //文件的有效性验证
int _charbuf; //检查缓冲区状况,如果无缓冲区则不读取
int _bufsiz; //文件的大小
char *_tmpfname; //临时文件名
};
typedef struct _iobuf FILE;
可以使用FILE定义其指针变量。要读写文件,可以为每个要使用的文件定义一个FILE*类型的指针变量,如:
FILE *fp;
文件指针指出了文件读写操作的当前数据位置,而FILE结构体指针指出了打开文件所对应的结构体在内存中的位置。